<?php
    class SolicitudExtranjera extends DBManager
    {
	var  $con;

	//funcion para comprobar conexion

        function open_con()
	{
            $this->con=parent::conectar();
            return $this->con;
	}

	//funcion para cerra conexion
	function close_con()
	{
            parent::desconectar();
	}
        
        
        function new_solicitud_extranjera($datos_sol,$datos_sol_extranjera,$datos_sol_est)
        {
            parent::conectar();
            
            $idsolicitud    = $this->next_secuencia();
            
            //datos para tabla tp_solicitud
            $record_s["idsolicitud"]    = $idsolicitud;
            $record_s["idempleado"]     = $datos_sol[0];
            $record_s["tipo_solicitud"] = $datos_sol[1];
            
            //datos para la tabla tp_solicitud_extranjera
            $record_se["idsolicitud_extranjera"]    = $idsolicitud;
            $record_se["idempleado"]                = $datos_sol_extranjera[0];
            $record_se["idestado"]                  = $datos_sol_extranjera[1];
            $record_se["nombrefirma_ext"]           = $datos_sol_extranjera[2];
            $record_se["fechainicio_ext"]           = $datos_sol_extranjera[3];
            $record_se["fechafinal_ext"]            = $datos_sol_extranjera[4];
            $record_se["idautorizado"]              = $datos_sol_extranjera[5];
            $record_se["fechasolicitud_ext"]        = $datos_sol_extranjera[6];  
            $record_se["representantelegal_ext"]    = $datos_sol_extranjera[7];  
            
            //datos para la tabla tp_estadosolicitud 
            $record_es["idsolicitud"]   =  $idsolicitud;
            $record_es["idempleado"]    =  $datos_sol_est[0];
            $record_es["idestado"]      =  $datos_sol_est[1];
            
            
            $this->obj_con->StartTrans();
                $new_solicitud              =   $this->obj_con->AutoExecute("tp_solicitud", $record_s, 'INSERT');
                $new_solicitud_extranjera   =   $this->obj_con->AutoExecute("tp_solicitud_extranjera", $record_se, 'INSERT');
                $new_estado_solicitud       =   $this->obj_con->AutoExecute("tp_estadosolicitud", $record_es, 'INSERT');
            $this->obj_con->CompleteTrans();  
            
            if($new_solicitud && $new_solicitud_extranjera && $new_estado_solicitud)
            {
                $create_folder               =   @mkdir(PATH_SOLICITANTES.$idsolicitud, 0644);
                return true."&&".$idsolicitud;
            }
            else
            {
                $this->last_secuencia($idsolicitud);
                return false;
            }              
            
            parent::desconectar();
        }
        
        function update_solicitud_extranjera($idsolicitud,$datos_sol_extranjera)
        {
            parent::conectar();
            
            $record_se["idempleado"]                = $datos_sol_extranjera[0];
            //$record_se["idestado"]                  = $datos_sol_extranjera[1];
            $record_se["nombrefirma_ext"]           = $datos_sol_extranjera[2];
            $record_se["fechainicio_ext"]           = $datos_sol_extranjera[3];
            $record_se["fechafinal_ext"]            = $datos_sol_extranjera[4];
            $record_se["idautorizado"]              = $datos_sol_extranjera[5];
            $record_se["fechasolicitud_ext"]        = $datos_sol_extranjera[6];        
            $record_se["representantelegal_ext"]    = $datos_sol_extranjera[7];  
            
            $this->obj_con->StartTrans();
                $update_solicitud_extranjera   =   $this->obj_con->AutoExecute("tp_solicitud_extranjera", $record_se, 'UPDATE','idsolicitud_extranjera='.$idsolicitud);
            $this->obj_con->CompleteTrans();  
            
            if($update_solicitud_extranjera)
            {
                return true."&&".$idsolicitud;
            }
            else
            {
                return false;
            }              
            
            parent::desconectar();
        }        
        
        
        function next_secuencia()
        {
            parent::conectar();
            
            $consulta  =   "select nextval('seq_idsolicitud') as idsolicitud";
            $record_consulta = $this->obj_con->GetRow($consulta);
            return  $record_consulta["idsolicitud"];
            
            parent::desconectar();
        }
        
        function last_secuencia($last_valor)
        {
            parent::conectar();
            
            $consulta  =   "SELECT setval('seq_idsolicitud', ".$last_valor.",false) as ultimo";
            $record_consulta = $this->obj_con->GetRow($consulta);
            return  $record_consulta["ultimo"];
            
            parent::desconectar();
        }           
        
        function get_campo_solicitud_extranjera($condicion,$get_campo)
	{
            parent::conectar();

            $consulta  =   "select ".$get_campo." from tp_solicitud_extranjera where ".$condicion;
            $record_consulta = $this->obj_con->GetRow($consulta);
            
            return  $record_consulta[$get_campo];
        }      
        
        function show_grid_solicitudes_extranjera()
        {
           parent::conectar();
           
           $start           =   isset($_POST['start'])?$_POST['start']:0; 
       	   $limit           =   isset($_POST['limit'])?$_POST['limit']:100;
           $tipo_busqueda   =   $_POST['tipo_busq'];
	   $valor_busqueda  =   $_POST['valor'];
 	   $data_all        =   array();
           
           if($tipo_busqueda == "idsolicitud_extranjera")
           {
               $condicion = "idsolicitud_extranjera = ".$valor_busqueda;
           }
           else
           {
               $condicion = $tipo_busqueda." like '%".$valor_busqueda."%'";
           }
               
            $consulta_extranjera   =   "select idsolicitud_extranjera,idautorizado,idestado,nombrefirma_ext,representantelegal_ext,nombre_esta,tipo_registro,nombre_autorizados,tipo_persona,to_char(fechasolicitud,'DD/MM/YYYY') as  fechasolicitud from func_solicitud_firma_extranjera() where ".$condicion.' order by idsolicitud_extranjera desc';
            $recordset_all         =   $this->obj_con-> Execute($consulta_extranjera);

           if (!$recordset_all)
           {
               echo ($this->obj_con->ErrorMsg());
           }
 	   else
           {
               while (!$recordset_all->EOF)
     	       {
                    $idsolicitud          =    $recordset_all->fields['idsolicitud_extranjera'];
                    $idestado             =    $recordset_all->fields['idestado'];
                    $idautorizado         =    $recordset_all->fields['idautorizado'];
                    $estado_sol           =    $recordset_all->fields['nombre_esta'];
                    $name_sol             =    $recordset_all->fields['nombrefirma_ext'];
                    $name_autorizado      =    $recordset_all->fields['nombre_autorizados'];
                    $tipo_auto            =    $recordset_all->fields['tipo_persona'];
                    $fecha_sol            =    $recordset_all->fields['fechasolicitud'];
                    $representante_legal  =    $recordset_all->fields['representantelegal_ext'];
                    
                    $fechai = $this->formato_fecha($this->get_campo_solicitud_extranjera('idsolicitud_extranjera = '.$idsolicitud, 'fechainicio_ext'));                    
                    $fechaf = $this->formato_fecha($this->get_campo_solicitud_extranjera('idsolicitud_extranjera = '.$idsolicitud, 'fechafinal_ext'));                    
                    
                    if($idestado == 11)
                    {
                        $nombre_esta = "<font color='green'><center><b>".$estado_sol."</b></center></font>";
                    }
                    else
                    {
                        $nombre_esta = "<font color='red'><center><b>".$estado_sol."</b></center></font>";
                    }    
                
                    $responce_all=array('idsolicitud'=>$idsolicitud,'idestado'=>$idestado,'idautorizado'=>$idautorizado,'estado_sol'=>$nombre_esta,'name_sol'=>$name_sol,'name_autorizado'=>$name_autorizado,'tipo_auto'=>$tipo_auto,'fecha_sol'=>$fecha_sol,'representante_legal'=>$representante_legal,'fechai'=>$fechai,'fechaf'=>$fechaf);
                    array_push($data_all,$responce_all);
                    $recordset_all->MoveNext();
                }

                $paging_all = array(
                        	 'success'=>true,
                                 'total'=>count($data_all), //<--- total de registros a paginar
				 'data'=> array_splice($data_all,$start,$limit)
                                );

		echo json_encode($paging_all);
            }
            parent::desconectar();            
        }        
        
        
        function show_combo_solicitudes_extranjera()
        {
           parent::conectar();
           
           $start           =   isset($_POST['start'])?$_POST['start']:0; 
       	   $limit           =   isset($_POST['limit'])?$_POST['limit']:100;
           $tipo_busqueda   =   $_REQUEST['tipo_busq'];
	   $valor_busqueda  =   $_REQUEST['query'];
 	   $data_all        =   array();
           
           if($tipo_busqueda == "idsolicitud_extranjera")
           {
               $condicion = "idsolicitud_extranjera = ".$valor_busqueda;
           }
           elseif($tipo_busqueda<>"")
           {
               $condicion = $tipo_busqueda." like '%".$valor_busqueda."%'";
           }
           else
           {
               $condicion = "nombrefirma_ext"." like '%".$valor_busqueda."%'";
           }
               
            $consulta_extranjera   =   "select idsolicitud_extranjera,idautorizado,idestado,nombrefirma_ext,representantelegal_ext,nombre_esta,tipo_registro,nombre_autorizados,tipo_persona,to_char(fechasolicitud,'DD/MM/YYYY') as  fechasolicitud from func_solicitud_firma_extranjera() where ".$condicion." order by idsolicitud_extranjera desc";
            $recordset_all         =   $this->obj_con-> Execute($consulta_extranjera);

           if (!$recordset_all)
           {
               echo ($this->obj_con->ErrorMsg());
           }
 	   else
           {
               while (!$recordset_all->EOF)
     	       {
                    $idsolicitud_extranjera=    $recordset_all->fields['idsolicitud_extranjera'];
                    $nombre_esta           =    $recordset_all->fields['nombre_esta'];
                    $name_full             =    $recordset_all->fields['nombrefirma_ext'];
                    $nombre_auto           =    $recordset_all->fields['nombre_autorizados']; 
                    $tipo_persona          =    $recordset_all->fields['tipo_persona'];  
                        
                    $responce_all=array('idsolicitud'=>$idsolicitud_extranjera,'nombre_esta'=>$nombre_esta,'nombre_full'=>$name_full,'nombre_auto'=>$nombre_auto,'tipo_auto'=>$tipo_persona);
                    array_push($data_all,$responce_all);
                    $recordset_all->MoveNext();
                }

                $paging_all = array(
                                 'total'=>count($data_all), //<--- total de registros a paginar
				 'data'=> array_splice($data_all,$start,$limit)
                                );

		echo json_encode($paging_all);
            }
            parent::desconectar();            
        } 
        
        
        function fill_propiedades_solicitud($obj_estado,$obj_empleado,$obj_verificacion_extranjera)
        {
            parent::conectar();
            $idsolicitud   =   $_POST['idsolicitud'];
            
            if($idsolicitud<>"")
            {
                $fecha_solicitud    =   $this->formato_fecha($this->get_campo_solicitud_extranjera("idsolicitud_extranjera = ".$idsolicitud, "fechasolicitud_ext"));
                $nombre_estado      =   $obj_estado->get_campo_estado("idestado =".$this->get_campo_solicitud_extranjera("idsolicitud_extranjera = ".$idsolicitud, "idestado"),"nombre_esta");
                
                $nombre_revisado    =   $obj_empleado->get_nombre_empleado($_SESSION["idempleado"]);
                $idverificacion     =   $obj_verificacion_extranjera->get_campo_verificacion_extranjera("idsolicitud_extranjera =".$idsolicitud,"idverificacionextranjera");
                $idverificacion     =   isset($idverificacion)?$idverificacion:0;
                $nombre_verificado  =   $obj_empleado->get_nombre_empleado($obj_verificacion_extranjera->get_campo_verificacion_extranjera("idsolicitud_extranjera = ".$idsolicitud, "idempleado"));
                
                $responce->data[0]=array('1- INFORMACION DE LA SOLICITUD:'=>'','&nbsp;&nbsp;&nbsp;&#149;&nbsp;FECHA SOLICITUD:'=>$fecha_solicitud,'&nbsp;&nbsp;&nbsp;&#149;&nbsp;TIPO SOLICITUD:'=>'FIRMA EXTRANJERA','&nbsp;&nbsp;&nbsp;&#149;&nbsp;ESTADO ACTUAL:'=>$nombre_estado,'&nbsp;&nbsp;&nbsp;&nbsp;&#149;&nbsp;VERIFICADO POR:'=>$nombre_verificado,'&nbsp;&nbsp;&nbsp;&nbsp;&#149;&nbsp;REVISADA POR:'=>$nombre_revisado);
                echo json_encode($responce);
            }
            else
            {
                $responce->data[0]=array('1- INFORMACION DE LA SOLICITUD:'=>'','&nbsp;&nbsp;&nbsp;&#149;&nbsp;FECHA SOLICITUD:'=>'','&nbsp;&nbsp;&nbsp;&#149;&nbsp;TIPO SOLICITUD:'=>'','&nbsp;&nbsp;&nbsp;&#149;&nbsp;ESTADO ACTUAL:'=>'','&nbsp;&nbsp;&nbsp;&nbsp;&#149;&nbsp;VERIFICADO POR:'=>'','&nbsp;&nbsp;&nbsp;&nbsp;&#149;&nbsp;REVISADA POR:'=>'');
                echo json_encode($responce);
            }
        }
        
        function formato_fecha($fecha)
        {
            list($fecha,$hora)      = explode(" ",$fecha);
            list($year,$mes,$dia)   = explode("-",$fecha); 
            return $dia."/".$mes."/".$year;
        }   
        
        function fill_form_verificacion_extranjera($obj_extranjera,$obj_natural,$obj_juridica,$obj_estado)
        {
            parent::conectar();
            
            $idsolicitud    = $_POST["idsolicitud"];
            $idautorizado   = $this->get_campo_solicitud_extranjera('idsolicitud_extranjera = '.$idsolicitud, 'idautorizado');
            
            $consulta_extranjera   =   "select idsolicitud_extranjera,idautorizado,idestado,nombrefirma_ext,representantelegal_ext,nombre_esta,tipo_registro,nombre_autorizados,tipo_persona,to_char(fechasolicitud,'DD/MM/YYYY') as  fechasolicitud from func_solicitud_firma_extranjera() where idsolicitud_extranjera = ".$idsolicitud;
            $recordset_all         =   $this->obj_con->Execute($consulta_extranjera);
            
            //echo $consulta_extranjera;

            while (!$recordset_all->EOF)
     	    {
                $nombre_auto           =    $recordset_all->fields['nombre_autorizados']; 
                $tipo_persona          =    $recordset_all->fields['tipo_persona'];  
                $tipo                  =    $recordset_all->fields['tipo_registro'];   
                $recordset_all->MoveNext();
            }      
            
            if($tipo == 1)
            {
                $fechaj         = $obj_natural->get_campo_natural('idautorizado_persona = '.$idautorizado,'fechajuramentacion_autp');
                $estado_auto    = $obj_estado->get_campo_estado("idestado =".$obj_natural->get_campo_natural('idautorizado_persona = '.$idautorizado,'idestado'),"nombre_esta");        
            }
            else if($tipo == 2)
            {
                $fechaj         = $obj_juridica->get_campo_juridica('idautorizado_juridica = '.$idautorizado,'fechajuramentacion_apju');
                $estado_auto    = $obj_estado->get_campo_estado("idestado =".$obj_juridica->get_campo_juridica('idautorizado_juridica = '.$idautorizado,'idestado'),"nombre_esta");                        
            }
            
            
            
            
            $res = array('success'              => true,
                'acuerdo'           => $obj_extranjera->get_campo_extranjera('idsolicitud_extranjera = '.$idsolicitud,'idautorizado_extranjera'), 
                'firma'             => $this->get_campo_solicitud_extranjera('idsolicitud_extranjera = '.$idsolicitud, 'nombrefirma_ext'),                 
                'representante'     => $this->get_campo_solicitud_extranjera('idsolicitud_extranjera = '.$idsolicitud, 'representantelegal_ext'), 
                'fechai'            => $this->formato_fecha($this->get_campo_solicitud_extranjera('idsolicitud_extranjera = '.$idsolicitud, 'fechainicio_ext')), 
                'fechaf'            => $this->formato_fecha($this->get_campo_solicitud_extranjera('idsolicitud_extranjera = '.$idsolicitud, 'fechafinal_ext')), 
                'idautorizado'      => $idautorizado, 
                'tipo'              => 'PERSONA '.$tipo_persona, 
                'fechaj'            => $this->formato_fecha($fechaj), 
                'estado'            => $estado_auto, 
                'nautorizado'       => $nombre_auto
            );
            echo json_encode($res);
            
            
            parent::desconectar();
        }
        
        
        function activate_botones_solicitud_extranjera($obj_verificacion_extranjera)
        {
            parent::conectar();
            $idsolicitud   =   $_POST['idsolicitud'];
            
            if($idsolicitud <>"")
            {
                
                $idverificacion     =   $obj_verificacion_extranjera->get_campo_verificacion_extranjera("idsolicitud_extranjera =".$idsolicitud,"idverificacionextranjera");
                $idverificacion     =   isset($idverificacion)?$idverificacion:0;
                
                $idestado           =   $this->get_campo_solicitud_extranjera("idsolicitud_extranjera = ".$idsolicitud, "idestado");
                $observacion        =   $obj_verificacion_extranjera->get_campo_verificacion_extranjera("idsolicitud_extranjera =".$idsolicitud,"observacion_vere");
                
                if($observacion=='')
                {
                    $bandera_ob = false;
                }
                else
                {
                    $bandera_ob = true;
                }
                
                $res = array('success'             => true,
                        'idestado'                 => $idestado, 
                        'observacion'              => $bandera_ob);
                            
                echo json_encode($res);
            }
            parent::desconectar();
        }        
        
        
    }
?>
